package njust.csc.aecore.utils
import jadx.api.JadxArgs
import jadx.api.JadxDecompiler
import java.io.File
import java.nio.file.Path

/**
 * @Author ZhouHang
 * @Date 24/8/7 周三
 */

/***
 * 将 APK 文件逆向后保存到指定位置
 * @receiver File 只能对 APK 文件处理
 * @param savePath Path 保存到指定位置
 */
fun File.reverseTo(savePath: Path) {
    assert(this.extension == "apk")
    val jadxArgs = JadxArgs()
    jadxArgs.setInputFile(this)
    jadxArgs.outDir = savePath.toFile()
    try {
        JadxDecompiler(jadxArgs).use { jadx ->
            jadx.load()
            jadx.save()
        }
    } catch (e: Exception) {
        e.printStackTrace()
    }
}

/**
 * 将形如 "AB CD EF" 的字符串转化为 "abcdef"
 * @receiver String
 * @return String
 */
fun String.toLowerCaseAndStripAll(): String {
    return this.lowercase().replace(" ", "")
}
